package com.zhhs.project.act.activity.service;


import com.zhhs.common.exception.file.InvalidExtensionException;
import com.zhhs.project.act.activity.domian.*;
import com.zhhs.project.act.appactivity.domian.AppActivityDetails;
import com.zhhs.project.act.appactivity.domian.AppActivityPrize;
import com.zhhs.project.act.appactivity.domian.AppActivityRuleVo;
import com.zhhs.project.act.appactivity.domian.AppAwardRecordVo;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;

/**
 * 我的活动Service接口
 *
 * @author zhhs
 * @date 2022-11-09
 */
public interface IActActivityService
{
    /**
     * 查询我的活动
     *
     * @param id 我的活动主键
     * @return 我的活动
     */
    public ActActivity selectActActivityById(Long id);

    /**
     * 查询我的活动列表
     *
     * @param actActivity 我的活动
     * @return 我的活动集合
     */
    public List<ActActivity> selectActActivityList(ActActivity actActivity);

    /**
     * 新增我的活动
     *
     * @param actActivity 我的活动
     * @return 结果
     */
    public int insertActActivity(ActActivity actActivity);


    /**
     * 新增我的活动内容
     * @param tableInfoVo
     * @return
     */
    public int insertTableInfoVo(TableInfoVo tableInfoVo, HttpServletRequest request) throws IOException, InvalidExtensionException;

    /**
     * 新增我的活动内容
     * @param tableInfoVo
     * @return
     */
    public int updateTableInfoVo(TableInfoVo tableInfoVo);

    /**
     * 修改我的活动
     *
     * @param actActivity 我的活动
     * @return 结果
     */
    public int updateActActivity(ActActivity actActivity);

    /**
     * 批量删除我的活动
     *
     * @param ids 需要删除的我的活动主键集合
     * @return 结果
     */
    public int deleteActActivityByIds(String ids);

    /**
     * 删除我的活动信息
     *
     * @param id 我的活动主键
     * @return 结果
     */
    public int deleteActActivityById(Long id);

    /**
     * 查询列表
     * @param actActivity
     * @return
     */
    public List<ActivityVo> selectActActivityVoList(ActActivity actActivity);

    /**
     * 获取获奖详情
     * @param activityId
     * @return
     */
    public List<ActPrizeDetails> getPrizeDetails(Long activityId);

    /**
     * 复制操作
     * @param activityId
     */
    public void copyActivity(Long activityId);

    /**
     * 修改状态
     * @param activityId
     */
    public int changeStatus(Long activityId, String status);

    /**
     * 删除
     * @param activityId
     * @return
     */
    public Boolean delAct(Long activityId);

    /**
     * 活动规则信息
     * @param activityId
     */
    public AppActivityRuleVo activityRule(Long activityId);

    /**
     * 中奖详情
     * @param awardId
     * @return
     */
    public AppActivityDetails activityDetails(Long awardId);

    /**
     * 中奖记录
     * @param userId
     * @param activityId
     * @return
     */
    public List<AppAwardRecordVo> awardRecord(Long userId, Long activityId);

    /**
     * 前台抽奖转盘页面数据
     * @param userId
     * @param activityId
     * @return
     */
    public AppActivityPrize activityPrizeList(Long userId, Long activityId);


    //返回活动列表
    List<ActivitysVo> getActivittyList();

    //获取分享参数
    ActActivityShareVo getJssdkConfig(Long valueOf);
}
